1. Field of the Invention
The present invention relates generally to signal measurement systems such as logic analyzers and digital oscilloscopes and, more particularly, to a system and method for specifying trigger conditions for signals and buses using a graphical user interface on a signal measurement system.
2. Related Art
Conventional logic analyzers and other signal measurement systems such as digital oscilloscopes allow a user to acquire and display digital signal data from a large number of logic signals (signals), such as those that travel over address, data and control lines of a device under test. A device under test may be a microprocessor, random access memory, or other types of chips or chip sets. A display device generally is used to allow the user to visualize the acquired signal data.
The signals typically are received from the device under test on physical electrical lines referred to as xe2x80x9cchannels.xe2x80x9d The channels may be physically assembled into groups called xe2x80x9cpods.xe2x80x9d The received signals are sampled and digitized to form signal data. Digitizing is typically performed by comparing the voltage magnitude of each of these logic signal samples to a reference voltage threshold to determine the logic state of the signals received at each channel. Sampling may occur at one of a number of selectable rates, generally depending upon the frequency at which the sampled signals change logic states.
The resultant signal data are stored in a signal data memory generally having a fixed size, under the control of a sampling clock. The data typically are stored in a sequential manner so that consecutive signal samples are stored in consecutive memory locations. Due to the quantity of signal data, signal data memory is commonly implemented as a wrap-around buffer.
Selection of the portion of the data that is stored and subsequently presented on a display is determined by a user-defined trigger specification. The trigger specification is specified by two parameters, a trigger condition and a trigger position. The occurrence of the trigger condition indicates that data is to be stored. The trigger position determines how much data is stored before and/or after the trigger condition occurs.
The trigger condition may be specified using occurrences such as shift in a signal value from low to high (rising edge) or a shift from high to low (falling edge). Also, a trigger condition may be specified with reference to a signal state, such as a xe2x80x9clogic highxe2x80x9d state or a xe2x80x9clogic lowxe2x80x9d state. These occurrences or states may be referred to as xe2x80x9ceventsxe2x80x9d for purposes of specifying a trigger condition. Alternatively, a trigger condition may be specified by requiring that a number of events occur simultaneously, or in a specified time sequence. Any of the logic signals received by the logic analyzer may be used to specify a trigger condition. The term xe2x80x9cbusxe2x80x9d conventionally is used to refer to a group of channels that are conceptually grouped together even though they need not be physically grouped together. Thus, for example, a bus may be defined as including channels A, B, and C to assist a designer in comparing and analyzing the signals present on those channels. To this end, the signals conceptually grouped together in the bus often are displayed together on a display device where they may be observed or measured by the designer. These signals may be displayed as waveforms. Also, the values of the signals in the bus at a particular instant, collectively referred to as the xe2x80x9cbus valuexe2x80x9d at that time, may be displayed. For example, the logic analyzer may determine that the value of the signal A at a particular time is the binary value xe2x80x9c0,xe2x80x9d the value of the signal B is xe2x80x9c1xe2x80x9d at that time, and the value of the signal C is xe2x80x9c0xe2x80x9d at that time. The bus consisting of those signals may then be said to have the binary value xe2x80x9c010,xe2x80x9d which may also be expressed as a hexadecimal value, or a value in any other base.
Buses may be used to specify trigger conditions in a manner analogous to that in which signals are used. For example, a bus xe2x80x9ceventxe2x80x9d may be defined as the occurrence of a bus value xe2x80x9cequal,xe2x80x9d or xe2x80x9cnot equal,xe2x80x9d to a particular value. Referring to the previous example, a bus event for the bus consisting of channels A, B, and C may be defined as xe2x80x9cequals 010.xe2x80x9d This event occurs when channels A, B, and C have the values noted above. In other known variations, a trigger condition may be specified as the occurrence of a bus value within, or, alternatively outside, a specified range of bus values.
After a trigger condition has been specified, the user may initiate the capture of signal samples. A trigger sequencer generally is used to compare each of the signals identified as contributing to the trigger condition to the specified trigger condition. When the trigger sequencer determines that the signal data matches the specified trigger condition, the trigger sequencer determines if trigger position is satisfied. If the trigger position has been selected to indicate that the display should include only signal data collected prior to occurrence of the trigger condition, then data collection typically ceases upon the occurrence of the trigger condition. Conversely, if the trigger position has been selected to indicate that the display should include only signal data collected subsequent to the occurrence of the trigger condition, the signal data memory generally is allowed to fill with data after the occurrence of the trigger condition. Alternatively, the user may chose a trigger position between these two positions, resulting in a data display that includes signal data that occurred both before and after the trigger condition. The signal data then may be sequentially read from the signal data memory and displayed to the user.
There are numerous conventional formats for displaying the signal data to the user. These formats vary depending on, among other things, the number of signals that are displayed, the manner in which signal data are grouped, the time axes used to display the signal data, the manner in which trigger conditions and trigger positions are shown, and so on.
Conventional signal measurement systems typically require the user to open a separate dialog box to specify and to alter the format in which the signal data are displayed. Aspects of the format that the user may wish to alter include, for example, changes in the groupings of signals into buses, renaming of signals and buses, or adding or removing signals or buses from the display. A drawback to these conventional systems is that the dialog box for changing the format of the display obscures the user""s view of the signals that are being manipulated. A second drawback of using dialog boxes to alter the display is that they generally are not intuitive. That is, they typically require that the user learn a particular syntax and learn other techniques for changing the format of the display. Conventional systems thereby generally require that new users invest significant amounts of time learning how to manipulate the display formats. If this learning is not frequently used, it may be forgotten. The user must then re-learn the syntax and other particulars of display formatting at a subsequent time. Even expert and frequent users suffer from the inconvenience and distraction of having to open and operate the display formatting dialogue box separate from the data signal display.
The present invention is directed in one embodiment to a system for enabling a user to specify one or more trigger conditions by graphically creating a pictorial representation of the trigger conditions. The pictorial representation is presented on a display window of a graphical user interface of a signal measurement system and is accomplished using trigger-condition icons. Each icon represents a trigger condition of a signal or bus. The signal measurement system may be a logic analyzer.
In some embodiments, the user specifies the trigger conditions by positioning the trigger-condition icons on the display window. The user does this by selecting, dragging, and dropping the trigger-condition icons onto the display window. The display window may include one or more name elements, each associated with a signal or a bus. The name elements may be user-specified, as by using combo boxes.
In these embodiments, the user may specify the trigger condition of a first signal or bus by selecting a trigger-condition icon and positioning it at a first position on the display window in visual association with the name element of the first signal or bus. Responsive to this action, the system displays a first trigger-condition element at the first position. The visual association of the trigger-condition icon with the name element may be accomplished by horizontal alignment; for example, by positioning the icon on a row occupied by the name element. In some implementations, however, the visual association with the name element may be by vertical alignment; i.e., by columns.
In these and other embodiments, the user may select the trigger-condition icon from a group of icons consisting of rising-edge icon, falling-edge icon, either-edge icon, low-level icon, high-level icon, don""t care icon, bus icon, positive pulse icon, and negative pulse icon. In some implementations, when the user selects the trigger-condition icon to be a bus icon and positions it in visual association with a name element of a signal, the trigger-condition element is not displayed. Similarly, in some implementations, when the user selects the trigger-condition icon to be one of a group of icons consisting of a rising-edge icon, falling-edge icon, either-edge icon, low-level icon, high-level icon, positive pulse icon, and negative pulse icon, and positions it in visual association with a name element of a bus, the trigger-condition element is not displayed.
In these and other embodiments, the user may specify the trigger condition of a second signal or bus by selecting a trigger-condition icon and positioning it at a second position on the display window in visual association with the name element of the second signal or bus. This action thereby results in the displaying of a second trigger-condition element at the second position. In some implementations of those embodiment, the name element of the first signal or bus and the name element of the second signal or bus are associated in a hierarchical structure. This hierarchical structure may be vertically aligned, and the visual association with the name element may be by horizontal alignment.
The display window may include a first constant time line. The first position may be located on the first constant-time line. In these embodiments, the visual association to the name element may, but need not be, by horizontal alignment. When the association is by horizontal alignment, the first constant-time line may be vertically aligned. The user may specify the trigger condition of a second signal or bus by selecting a trigger-condition icon and positioning it at a second position on the display window in visual association with the name element of the second signal or bus and on the first constant-time line. The result of this action is that the system displays a second trigger-condition element at the second position.
The display window may include a second vertically aligned constant-time line positioned to the right of the first constant-time line. The user may specify the trigger condition of the first signal or bus by selecting a trigger-condition icon and positioning it at a second position on the display window in visual association with the name element of the first signal or bus and on the second constant-time line. The result of this action is that the system displays a second trigger-condition element at the second position. The system may include a display coordinator that connects the first and second trigger-condition elements based on predetermined rules so that the state of the first signal or bus is not ambiguous between the first and second constant-time lines.
Also, when the visual association with the name element is by horizontal alignment, the display window may include a third vertically aligned constant time line positioned to the right of the second constant-time line. The user specifies the trigger condition of the first signal or bus by selecting a trigger-condition icon and positioning it at a third position on the display window in visual association with the name element of the first signal or bus and on the third constant-time line. The result of this action is that the system displays a third trigger-condition element at the third position. The display coordinator may connect the second and third trigger-condition elements based on the predetermined rules so that the state of the first signal or bus is not ambiguous between the second and third constant-time lines.
The user may specify a time-limit between the first and second constant-time lines, and or between the second and third constant-time lines. This specification may be that the time-limit is an indefinite time period, or that it is less than or greater than a user-specified time period.
In some embodiments, the system includes a trigger specifier that determines a combined trigger condition for a first state corresponding to the first constant-time line based on the first and second trigger-condition elements and one or more boolean expressions. These expressions may be predetermined, or they may be user-specified.
In alternative embodiments, the invention is direction to a method for enabling a user to specify one or more trigger conditions on a display window of a graphical user interface of a signal measurement system. The method includes the steps of: (1) enabling a user to select a trigger-condition icon representing a trigger condition of a signal or bus; and (2) enabling the user to position the icon on the display window by dragging and dropping it.
The above embodiments are not necessarily inclusive or exclusive of each other and may be combined in any manner that is non-conflicting and otherwise possible, whether they be presented in association with a same, or a different, aspect of the invention. The description of one embodiment is not intended to be limiting with respect to other embodiments. Also, any one or more function, step, operation, or technique described elsewhere in this specification may, in alternative embodiments, be combined with any one or more function, step, operation, or technique described in the summary. Thus, the above embodiments are illustrative rather than limiting.